package projeto.administrativo.atividade.cih;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import nucleo.comuns.visao.NucleoTab;
import plataforma.cih.PainelDuploListbox;
import projeto.administrativo.checklist.cdp.KChecklist;

public class AbaKChecklist extends NucleoTab {

	PainelDuploListbox painelKChecklist;

	public AbaKChecklist() {

		montar();
	}

	private void montar() {
		setNomeTab("Checklist");

		painelKChecklist = new PainelDuploListbox() {

			@Override
			public String recuperarLabel(Object obj) {
				KChecklist kchecklist = (KChecklist) obj;

				return kchecklist.getDescricao();
			}
		};

		setConteudoTab(painelKChecklist);

	}

	public boolean isValid() {

		return true;
	}

	public void setKChecklist(Set<KChecklist> kchecklists,
			List<KChecklist> todosObjetosCadastrados) {
		// converter set pra lista
		List<KChecklist> listSelecionados = new ArrayList<KChecklist>(
				kchecklists);
		painelKChecklist.preencherComDados(todosObjetosCadastrados,
				listSelecionados, new ComparadorKChecklist());

	}

	public class ComparadorKChecklist implements Comparator<KChecklist> {

		@Override
		public int compare(KChecklist o1, KChecklist o2) {
			// return (-1) * o1.getDescricao().compareTo(o2.getDescricao());
			return o1.getDescricao().compareTo(o2.getDescricao());
		}

	}

	public Set<KChecklist> getSetKChecklist() {
		return new HashSet(painelKChecklist.getSelecionados());
	}

}
